document.getElementById('captureButton').addEventListener('click', () => {
    chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
        chrome.tabs.captureVisibleTab(null, { format: 'png' }, (imageUri) => {
            setImageUrlToDownload(imageUri);
        });
    });
});

/**
 * 图片转换为base64 放置在粘贴板内
 * @param {*} imageUri 
 */
function setImageUrlToBase64ForClipboard(imageUri) {
    // 将图片转换为 Blob 对象
    fetch(imageUri)
        .then(response => response.blob())
        .then(blob => {
            // 将 Blob 转换为 Base64 字符串
            const reader = new FileReader();
            reader.readAsDataURL(blob);
            reader.onloadend = () => {
                const base64data = reader.result; // 这是图片的 Base64 编码字符串

                // 使用 navigator.clipboard API 设置剪贴板数据
                navigator.clipboard.writeText(base64data)
                    .then(() => {
                        console.log('Image URL has been copied to clipboard');
                    })
                    .catch(err => {
                        console.error('Failed to copy image URL to clipboard: ', err);
                    });
            };
        })
        .catch(err => {
            console.error('Error converting image to Blob:', err);
        });
}

/**
 * 将截屏的图片下载到本地
 * @param {*} imgUrl 
 */
async function setImageUrlToDownload(imgUrl) {
    try {
        // 将图片 URL 转换为 Blob
        const response = await fetch(imgUrl);
        const blob = await response.blob();

        // 创建一个可下载的链接
        const url = URL.createObjectURL(blob);
        const link = document.createElement('a');
        link.href = url;
        link.download = `screenshot_${new Date().getTime()}.png`;

        // 模拟点击下载
        document.body.appendChild(link);
        link.click();

        // 移除链接，避免出现在 DOM 中
        document.body.removeChild(link);
    } catch (err) {
        console.error('Error setting image URL to clipboard:', err);
    }
}